home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / com / othernet / fidonet / aval_377 / develop / fido_msg.h next >
C/C++ Source or Header  |  1996-07-19  |  7KB  |  146 lines

  1. #ifndef __FIDO_MSG_H__
  2. #define __FIDO_MSG_H__
  3.  
  4. /*********************************************************************************/
  5. /*
  6.    FIDO_MSG.H
  7.  
  8.    header-module for special messages for FIDO software
  9.  
  10.    -----------------------------------------------------------------------------
  11.  
  12.    It's possible to send some fido programs messages, so they will
  13.    do certain things as soon as possible. Just send a message via 
  14.    appl_write():
  15.  
  16.    WORD message[8], id;
  17.    id = appl_find( PROGRAMNAME );
  18.    if (id>=0)
  19.    {   message[0] = FIDO_MSG                // MAGIC value
  20.        message[1] = ap_id;                  // appl_init ID of the sender
  21.        message[2] = 0;                      // just a 16 byte message
  22.        *((LONG *) &message[3]) = FROM;      // sender verification
  23.        *((LONG *) &message[5]) = TODO;      // what's to be done
  24.        message[7] = 0;                      // reserved
  25.        appl_write( id, 16, message );
  26.    }
  27.   
  28.    PROGRAMNAME: "SEMPER  "
  29.                 "AVALON  "
  30.                 "OCTOPUS "
  31.                 "LED     "
  32.  
  33.    -----------------------------------------------------------------------------
  34.  
  35.    It is possible to request a small information block. This feature
  36.    is *not* supported by all software. Only AVALON and LED support 
  37.    this message yet.
  38.   
  39.    When sending a FidoMessage (FIDO_MSG 'FM' with command AVAL_INFO)
  40.    to AVALON, it returns following message (FIDO_INFO 'FI'):
  41.  
  42.     message[0] = FIDO_INFO               // MAGIC value
  43.     message[1] = ap_id;                  // appl_init ID of the sender (AVALON)
  44.     message[2] = 0;                      // just a 16 byte message
  45.     *((LONG *) &message[3]) = FM_AVALON; // sender verification
  46.     message[5] = version;                // version (see later)
  47.     message[6] = commandrev;             // command rev. (see later)
  48.     message[7] = 0;                      // reserved
  49.     appl_write( id, 16, message );
  50.  
  51.        version: program version (e.g. AVALON returns 0x0360 for V3.60)
  52.     commandrev: command subset (fullversion of AVALON returns 0x10,
  53.                                 AVALON for SEMPER returns 0x00)
  54.                 The command rev. is stored in the lower byte, the higher
  55.                 byte is reserved and zero!
  56.  
  57.    -----------------------------------------------------------------------------
  58.  
  59.    Make sure that _all_ applications with the same name are getting
  60.    the needed information!! Within a multitasking environment check
  61.    for the appl_search() function and use this one instead of appl_find()!
  62.   
  63.    Code to check this is available here if necessary.
  64. */
  65.  
  66.  
  67. /*********************************************************************************/
  68. /*
  69.    ID's for the 'FROM'-field:
  70. */
  71.  
  72. #define FM_SEMPER       'SEMP'    /* Semper                                      */
  73. #define FM_AVALON       'AVAL'    /* Avalon shell                                */
  74. #define FM_MSGREADER    'MSGR'    /* e.g. LED                                    */
  75. #define FM_TOSSER       'TOSS'    /* e.g. JetMail                                */
  76. #define FM_REQCOMPILER  'REQC'    /* RequestCompiler                             */
  77. #define FM_NLCOMPILER   'NLST'    /* NodelistCompiler                            */
  78. #define FM_OCTOPUS      'OCTP'    /* Octopus BBS                                 */
  79. #define FM_LED                    'LED '        /* LED MsgReader                                                             */
  80.  
  81. /*********************************************************************************/
  82. /*
  83.    Magic value for recognizing *INCOMING* messages:
  84. */
  85. #define FIDO_MSG        'FM'      /* Magic value for identifying FidoMessage     */
  86. #define FIDO_INFO       'FI'      /* Magic value for identifying FidoInfo        */
  87.                                   /* 'FI' is *not* supported by all software yet */
  88.  
  89. /*********************************************************************************/
  90. /*
  91.    Currently supported SEMPER-TODO values:
  92. */
  93. #define SEMP_RESCAN     (1UL << 0)    /* Rescan outbound                         */
  94. #define SEMP_READ_NLIST (1UL << 1)    /* Reread nodelist                         */
  95. #define SEMP_READ_RQST  (1UL << 2)    /* Reread request index                    */
  96. #define SEMP_EXPORTER   (1UL << 3)    /* Executes Export                         */
  97.  
  98. /*********************************************************************************/
  99. /*
  100.    Currently supported AVALON-TODO values (command rev.0x00 and higher):
  101. */
  102. #define AVAL_INFO       0x00000000UL  /* Request FIDO_INFO-Message ('FI')        */
  103. #define AVAL_REQ        0x00000001UL  /* FileRequest                             */
  104. #define AVAL_HATCH      0x00000002UL  /* FileHatch                               */
  105. #define AVAL_FIX        0x00000003UL  /* Areafix/Filefix                         */
  106. #define AVAL_AREAS      0x00000004UL  /* Edit areas                              */
  107. /*
  108.    Currently supported AVALON-TODO values (command rev.0x10 and higher):
  109. */
  110. #define AVAL_POLL       0x00000005UL  /* Start all selected pollsessions         */
  111. #define AVAL_POLL1      0x00010005UL  /* Start pollsession #1                    */
  112. #define AVAL_POLL2      0x00020005UL  /* Start pollsession #2                    */
  113. #define AVAL_POLL3      0x00030005UL  /* Start pollsession #3                    */
  114. #define AVAL_POLL4      0x00040005UL  /* Start pollsession #4                    */
  115. #define AVAL_POLL5      0x00050005UL  /* Start pollsession #5                    */
  116. #define AVAL_POLL6      0x00060005UL  /* Start pollsession #6                    */
  117.  
  118. /*********************************************************************************/
  119. /*
  120.    Currently supported OCTOPUS-TODO values:
  121. */
  122. #define OCTO_M_LOCAL    0x0001UL  /* Begin a local logon                         */
  123. #define OCTO_M_WATCH    0x0002UL  /* Open a View window when a connection exist  */
  124. #define OCTO_M_MAILER   0x0004UL  /* End Octopus after a connection (not needed) */
  125. #define OCTO_M_NOHANGUP 0x0008UL  /* Don't raise the DTR signal for hangup       */
  126. #define OCTO_M_STATUS   0x0010UL  /* Request of Octopus Status                   */
  127.  
  128. /*
  129.    Return values for Octopus->Semper:
  130. */
  131. #define OCTO_M_OK       0x0010UL  /* Ok, ACK handshake message                   */
  132. #define OCTO_M_BUSY     0x0020UL  /* Octopus is busy yet                         */
  133. #define OCTO_M_READY    0x0040UL  /* Octopus is waiting (ready) now...           */
  134. #define OCTO_M_HELLO    0x0080UL  /* Say Hello to Semper... :-)                  */
  135.  
  136. /*********************************************************************************/
  137. /*
  138.    Currently supported LED-TODO values (command rev.0x00 and higher):
  139. */
  140. #define LED_INFO                0x00000000UL    /* Request FIDO_INFO-Message ('FI')                 */
  141.  
  142. /*********************************************************************************/
  143. /* --- End of fido_msg.h module    ---                                              */
  144.  
  145. #endif
  146.